Serial advanced technology attachment (Serial ATA, or SATA), is a communication interface. Currently, SATA is primarily used for coupling mass storage devices, such as hard disk drives, optical drives, etc. to host bus adapters. Many modern computing devices include SATA host adapters for interfacing with SATA storage devices as SATA storage interfaces provide faster and more efficient data transfer in comparison to conventional interfaces, such as Parallel ATA (PATA) or External Integrated Drive Electronics (EIDE).
The first generation of SATA interfaces, SATA 1.5 Gb/s, as developed by the Serial ATA International Organization (SATA-IO) provide for communication at a rate of 1.5 GB/s. Limitations imposed by some devices such as mechanical hard drives, required only a portion of the interface data transfer rates to speeds to about 150 MB/s. SATA Revision 2.0 (SATA 3 Gb/s) provides 3 Gb/s signaling rate and effective doubling of data throughput to 300 MB/s. SATA Revision 3.0, refers to SATA 6 GB/s, allowing for increased interface transfer speeds. Although mechanical drives may hardly utilize full throughput of SATA Revision 3.0, solid state disk drives may benefit from the increased read speeds.
SATA interfaces may be preferred over conventional interfaces, as these interfaces provide greater speed, allow for upgradeable storage devices, simplify device configuration and maintenance, and significantly reduce the space needed for cables. Currently SATA hosts support hot plugging, that is adding SATA devices which interact with a computer and/or operating system, while the computer is operating. SATA hosts may also allow for hot swapping which relates to replacing SATA devices without shutting down the system. As provided in the SATA standard, SATA devices support hot plug. Thus, SATA host devices are aware when a new devices is connected.
Notably absent however, from the SATA standard and conventional methods and devices that utilize the SATA standard, is any provision for hot unplugging of a SATA device. As a result, a SATA host will not recognize disconnection of a SATA device. SATA host systems will typically provide an indication that the SATA device is still available until a user or application tries to access the non-existent device. At which point, the system will try several attempts at accessing the device before declaring device failure. Because existing software applications and SATA host interfaces in general do not address hot unplug, host systems are unaware when SATA devices are disconnected. Thus, operating errors may be generated.
Conventional solutions to SATA device disconnection rely on device manufacturers to provide host systems with software to detect disconnection. However, this is a tough obstacle for device manufacturers to determine software for every type of operating system of which the devices may be used. Further, these software solutions may not detect hot unplug. Thus, there is a need in the art for systems and methods of which address hot unplugging of SATA devices.
Another solution proposed in the SATA standard relates to monitoring SATA device power lines. This solution relies on the ability of a SATA host to not only to provide power to SATA device, but also to monitor the SATA device. Both requirements appear to be a significant obstacle. Moreover, the majority of current SATA devices receive power externally, and completely independent from a SATA host holding system power supply. As a result monitoring power lines by a SATA host may be virtually impossible. Thus, there is a need in the art for systems and methods of which address hot unplugging of SATA devices using SATA communication lines only.